using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;

namespace ProyectoFinal.ModelosAuto
{
    public partial class CRUDModelosAutos : System.Web.UI.Page
    {
        ServiceModelo.webServiceModeloSoapClient objWsModeloAuto = new ServiceModelo.webServiceModeloSoapClient();
        ServiceMarcas.WebServiceMarcasSoapClient objWsMarcaAuto = new ServiceMarcas.WebServiceMarcasSoapClient();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                this.cargarListaModelosAutos();
                this.LlenarComboMarcas();
                confirmacionBorrado.Visible = false;
            }
            

        }

        protected void linkTab_Click(object sender, EventArgs e)
        {
            this.cargarListaModelosAutos();
        }
        protected void gvModelosAutos_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            GridViewRow row = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);

            if (e.CommandName == "editar")
            {
                int fila = Convert.ToInt32(row.RowIndex);
                int CodigoModelo = Convert.ToInt32(gvModelosAutos.DataKeys[fila].Value);
                pEdit.Visible = true;
                this.editarModeloAutos(CodigoModelo);
            }
            else
            {
                int fila = Convert.ToInt32(row.RowIndex);
                int CodigoModelo = Convert.ToInt32(gvModelosAutos.DataKeys[fila].Value);
                this.eliminarModelos(CodigoModelo);
            }
        }



        protected void gvModelosAutos_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvModelosAutos.PageIndex = e.NewPageIndex;
            this.cargarListaModelosAutos();
        }



        private void cargarListaModelosAutos()
        {
            //devuelve lista completa para mostrar registros
            DataSet ds = objWsModeloAuto.devolverModelos();
            gvModelosAutos.DataSource = ds.Tables[0];
            gvModelosAutos.DataBind();
        }

        private void LlenarComboMarcas()
        {
            //devuelve lista completa para mostrar registros
            DataSet ds = objWsMarcaAuto.devolverMarcas();
            dd_Marca.DataSource = ds.Tables[0];
            dd_Marca.DataValueField = "Codigo_Marca";
            dd_Marca.DataTextField = "Marca";
            dd_Marca.DataBind();

            dd_Marca_edit.DataSource = ds.Tables[0];
            dd_Marca_edit.DataValueField = "Codigo_Marca";
            dd_Marca_edit.DataTextField = "Marca";
            dd_Marca_edit.DataBind();
        }




        protected void btn_guardar_Click(object sender, EventArgs e)
        {
            this.insertarModelosAutos();
           
        }

        protected void btn_limpiar_Click(object sender, EventArgs e)
        {
            txt_Modelo.Text = "";
        }



        // #region Procedimientos
        private void insertarModelosAutos()
        {
            try
            {
                string estado = "";
                //dentro del metodo hacen el pase de los valores que vienen desde la interfaz
                estado = objWsModeloAuto.insertarModelos(0,Convert.ToInt32(dd_Marca.SelectedItem.Value),txt_Modelo.Text);
                if (estado == "Insertado")
                {
                   // System.Web.HttpContext.Current.Response.Write("<SCRIPT LANGUAGE='JavaScript'>alert('Registro agregado');</SCRIPT>");
                    this.cargarListaModelosAutos();
                    limpiarCampos();
                    Response.Redirect(Request.RawUrl);
                    //aqui pueden tirar un msj dependiendo de lo que devuelva el estado
                }
            }
            catch (Exception ex)
            {
            }
        }



        private void actualizarEstilosAutos()
        {
            try
            {
                string estado = "";
                //dentro del metodo hacen el pase de los valores que vienen desde la interfaz
                estado = objWsModeloAuto.actualizarModelos(Convert.ToInt32(txt_Codigo_Modelo.Text), Convert.ToInt32(dd_Marca.SelectedItem.Value),txt_Modelo_edit.Text);
                if (estado == "Error")
                {
                    //aqui pueden tirar un msj error si sucediera
                }
                else 
                {
                    confirmacionActualizado.Visible = true;
                    this.cargarListaModelosAutos();
                    Response.Redirect(Request.RawUrl);
                }


            }
            catch (Exception ex)
            {

            }
        }
        private void eliminarModelos(int CodigoModelo)
        {
            try
            {
                string estado = "";
                //dentro del metodo hacen el pase de los valores que vienen desde la interfaz
                estado = objWsModeloAuto.eliminarModelos(CodigoModelo);
                if (estado == "Error")
                {
                    //aqui pueden tirar un msj error si sucediera
                }
                else if (estado == "Registro Eliminado Satisfactoriamente")
                {
                    this.cargarListaModelosAutos();
                    //aqui pueden tirar un msj dependiendo de lo que devuelva el estado en este caso el el
                    //caso exitoso, seria cuando hace insert.
                }


            }
            catch (Exception ex)
            {

            }

        }
        private void editarModeloAutos(int CodigoModelo)
        {
            try
            {
                DataSet ds = objWsModeloAuto.editarModelos(CodigoModelo);
                txt_Modelo_edit.Text = ds.Tables[0].Rows[0]["Modelo"].ToString();
                txt_Codigo_Modelo.Text = CodigoModelo.ToString();

                for (int i = 0; i < dd_Marca_edit.Items.Count; i++)
                {
                    if (ds.Tables[0].Rows[0]["Codigo_Marca"].ToString() == dd_Marca_edit.Items[i].Value.ToString())
                    {
                        dd_Marca_edit.SelectedIndex = i;
                    }
                }

            }
            catch (Exception ex)
            {

            }
        }


        protected void btn_guardar_edit_Click(object sender, EventArgs e)
        {
            confirmacionActualizado.Visible = true;
            this.actualizarEstilosAutos();
        }

        protected void btn_limpiar_edit_Click(object sender, EventArgs e)
        {
            this.limpiarCampos();
        }


        protected void btn_cancelar_Click(object sender, EventArgs e)
        {
            this.limpiarCampos();
            pEdit.Visible = false;
        }

        public void limpiarCampos()
        {
            txt_Codigo_Modelo.Text = "";
            txt_Modelo_edit.Text = "";
            txt_Modelo.Text = "";
            dd_Marca.SelectedIndex = 0;
            dd_Marca_edit.SelectedIndex = 0;
           
        }


    }
}
